package com.correction.service;

import java.util.List;

import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.Transaction;

import com.correction.classes.Utilisateur;
import com.correction.utils.HibernateUtil;

public class UtilisateurDAO {

	public static Utilisateur saveUtilsateur(Utilisateur user) {
		Session session = HibernateUtil.getSessionFactory().openSession();
		Transaction transaction = null;
		try {
			transaction = session.beginTransaction();
			session.saveOrUpdate(user);
			transaction.commit();
		} catch (HibernateException e) {
			transaction.rollback();
			e.printStackTrace();
		} finally {
			session.close();
		}
		return user;
	}

	public static List<Utilisateur> getAll() {

		Session session = HibernateUtil.getSessionFactory().openSession();
		Transaction transaction = null;
		List<Utilisateur> users = null;
		try {
			transaction = session.beginTransaction();
			users = session.createCriteria(Utilisateur.class).list();
			transaction.commit();
		} catch (HibernateException e) {
			transaction.rollback();
			e.printStackTrace();
		} finally {
			session.close();
		}
		return users;

	}

	public static Utilisateur getUtilisateur(String mail, String pwd) {
		Session session = HibernateUtil.getSessionFactory().openSession();
		Utilisateur utilisateur = null;
		String hql = "FROM Utilisateur u where (u.mail='" + mail
				+ "' and u.pwd='" + pwd + "')";
		utilisateur = (Utilisateur) session.createQuery(hql).uniqueResult();
		session.close();

		return utilisateur;
	}
}
